package com.junjiao.util.dao.paging;

import java.util.ArrayList;
import java.util.List;

/**
 *说明：
 * 
 *该实体表示要查询的类。
 * 
 *用途：最重要的东东,通过这个来构造hql
 * 
 *@创建：作者:Qi 创建时间：Sep 7, 2009
 *@修改历史：[序号](Qi Sep 7, 2009)<修改说明>
 */
public class QueryClass {

	private String className;// 类名

	private String otherName;// 别名

	private List<QueryWhere> queryWhereList = new ArrayList<QueryWhere>();// 查询属性的列表

	private List<QueryWhere> queryWhereFKList = new ArrayList<QueryWhere>();// 查询外键列表

	private List<QueryOrderby> queryOrderbyList = new ArrayList<QueryOrderby>();// 升序降序列表

	/**
	 *@param className
	 *            : 类名
	 *@param otherName
	 *            : 别名
	 */
	public QueryClass(String className, String otherName) {
		this.className = className;
		this.otherName = otherName;
	}

	/** 获取类名和别名的组合字符串 **/
	public StringBuffer getClassAndOtherNameStr() {
		StringBuffer sb = new StringBuffer();
		return sb.append(className).append(" ").append(otherName);
	}

	/** 添加查询条件 */
	public QueryClass addQueryWhere(QueryWhere queryWhere) {
		queryWhereList.add(queryWhere);
		return this;
	}

	/** 获取查询条件列表 **/
	public List<QueryWhere> getQueryWhereList() {
		return queryWhereList;
	}

	/** 添加查询外键 */
	public QueryClass addQueryWhereFK(QueryWhere queryWhere) {
		queryWhereFKList.add(queryWhere);
		return this;
	}

	/** 获取查询外键列表 **/
	public List<QueryWhere> getQueryWhereFKList() {
		return queryWhereFKList;
	}

	/** 添加orderby **/
	public QueryClass addQueryOrderby(QueryOrderby queryOrderby) {
		queryOrderbyList.add(queryOrderby);
		return this;
	}

	/** 获取orderby列表 **/
	public List<QueryOrderby> getQueryOrderbyList() {
		return queryOrderbyList;
	}

	/** 获取类名 **/
	public String getClassName() {
		return className;
	}

	/** 设置类名 **/
	public void setClassName(String className) {
		this.className = className;
	}

	/** 获取别名 **/
	public String getOtherName() {
		return otherName;
	}

	/** 设置别名 **/
	public void setOtherName(String otherName) {
		this.otherName = otherName;
	}
}
